package com.kmxd.ams.client.jy.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 统计信息
 *
 * @author ZuoLG
 * @since 2023-10-16
 */
@Data
@Schema(description = "统计信息对象")
public class StatisticsVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @Schema(description = "利用标题")
    private String title;

    @Schema(description = "申请时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyDate;

    @Schema(description = "状态 0-已归档  1-待归还 2已归还")
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer status;

    @Schema(description = "利用评价  0-查到 1-部分查到 2-未查到")
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer useEval = 0;

    @Schema(description = "服务评价 5-极好 4-好 3-一般 2-差 1-极差")
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer serverEval = 5;

    @Schema(description = "次")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long mainOrder = 0L;

    @Schema(description = "人次")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long personOrder = 0L;

    @Schema(description = "卷次")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long volOrder = 0L;

    @Schema(description = "件次")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long docOrder = 0L;

    @Schema(description = "备注")
    private String memo;

    @Schema(description = "档案载体(纸质)")
    private Integer carrierP = 0;

    @Schema(description = "档案载体(数字化)")
    private Integer carrierD = 0;

    @Schema(description = "档案载体(声像)")
    private Integer carrierS = 0;

    @Schema(description = "被评价人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    @Schema(description = "被评价人名称")
    private String userName;

    @Schema(description = "评价时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /**
     * 评价月份
     */
    private Integer timeMonth;

    /**
     * 评价年份
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Integer timeYear;

    @Schema(description = "评价人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long createUserId;

    @Schema(description = "是否评价  0-未评价 1-已评价")
    private Integer isEvaluate;

    @Schema(description = "摘抄份数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long zcfs = 0L;

    @Schema(description = "摘抄页数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long zcys = 0L;

    @Schema(description = "静电复印份数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long jdfyfs = 0L;

    @Schema(description = "静电复印页数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long jdfyys = 0L;

    @Schema(description = "摄影复制份数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long syfzfs = 0L;

    @Schema(description = "摄影复制页数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long syfzys = 0L;

    @Schema(description = "缩微复制份数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long swfzfs = 0L;

    @Schema(description = "缩微复制页数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long swfzys = 0L;

    @Schema(description = "数字化打印份数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long szhdyfs = 0L;

    @Schema(description = "数字化打印页数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long szhdyys = 0L;

    @Schema(description = "数字化拷贝份数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long szhkbfs = 0L;

    @Schema(description = "数字化拷贝页数")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long szhkbys = 0L;

    @Schema(description = "开放")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long kfq = 0L;

    @Schema(description = "未开放")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long wkf = 0L;

    @Schema(description = "建国前")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long jgq = 0L;

    @Schema(description = "历史革命")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long lsgm = 0L;

    @Schema(description = "建国后")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long jgh = 0L;
}
